package com.yilian.reflection;

/**
 * Studyable接口 - 用于演示反射获取接口信息
 * 
 * 这个接口定义了学习相关的基本行为，用于演示反射机制如何：
 * 1. 获取类实现的接口信息
 * 2. 通过反射调用接口方法
 * 3. 创建动态代理对象
 * 4. 分析类的继承结构
 * 
 * 在反射中，接口信息对于：
 * - 了解类的完整结构很重要
 * - 动态代理的实现是必需的
 * - 框架开发中经常需要检查接口实现
 * 
 * @author 练习项目
 * @version 1.0
 */
public interface Studyable {
    
    /**
     * 学习方法
     * 实现类需要提供具体的学习行为
     */
    void study();
    
    /**
     * 参加考试方法
     * 实现类需要提供具体的考试行为
     */
    void takeExam();
    
    /**
     * 获取学习科目
     * 
     * @return 学习科目名称
     */
    String getSubject();
} 